
\setlength{\oddsidemargin}{.25in}
\setlength{\evensidemargin}{.25in}
\setlength{\textwidth}{6in}
\setlength{\topmargin}{-0.4in}
\setlength{\textheight}{8.5in}

\newcommand{\mathify}[1]{\ifmmode{#1}\else\mbox{$#1$}\fi}


% \newcommand{\eqdef}{\coloneqq}       % ``equals by definition''
\newcommand{\eqdef}{\stackrel{\text{\tiny def}}{=}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\F}{\mathbb{F}}
\newcommand{\bits}{\{0,1\}}
\newcommand{\inr}{\in_{\mbox{\tiny R}}}
\newcommand{\getsr}{\gets_{\mbox{\tiny R}}}
\newcommand{\into}{\rightarrow}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Complexity classes

\renewcommand{\P}{\mathbf{P}}
\newcommand{\NP}{\mathbf{NP}}
\newcommand{\PSPACE}{\mathbf{PSPACE}}
\newcommand{\NC}{\mathbf{NC}}
\newcommand{\Ppoly}{\mathbf{P}/poly}
\newcommand{\NEXP}{\mathbf{NEXP}}
\newcommand{\EXP}{\mathbf{EXP}}
\newcommand{\PCP}{\mathbf{PCP}}
\newcommand{\Ntime}{\mathbf{Ntime}}
\newcommand{\Dtime}{\mathbf{Dtime}}
\newcommand{\BPP}{\mathbf{BPP}}
\newcommand{\PromiseBPP}{\mathbf{PromiseBPP}}


%
% Useful symbols
%


\newcommand{\ihat}{\hat{\imath}}
\newcommand{\jhat}{\hat{\jmath}}
\newcommand{\Nat}{\bf N}                               % natural numbers
\newcommand{\Int}{\mathbf{Z}}                             % integers
\newcommand{\Bool}{\it Bool}                   % booleans
\newcommand{\true}{\tt t}
\newcommand{\false}{\tt f}
% \newcommand{\I}{\cal I}                                % interpretations
\newcommand{\M}{\cal M}                         % meaning functions
\newcommand{\A}{\cal A}                         % arithmetic interpretation
\newcommand{\B}{\cal B}                         % binary word interpretation
\newcommand{\TIME}{\mathop{\rm TIME}\nolimits}
\newcommand{\NTIME}{\mathop{\rm NTIME}\nolimits}
\newcommand{\SPACE}{\mathop{\rm SPACE}\nolimits}
\newcommand{\NSPACE}{\mathop{\rm NSPACE}\nolimits}
\newcommand{\union}{\cup}
\newcommand{\intersect}{\cap}
%\newcommand{\implies}{\Rightarrow}

%
% Useful functions
%

\newcommand{\abs}[1]{\mathify{\left| #1 \right|}}
\newcommand{\car}[1]{\mathify{\left| #1 \right|}}
\renewcommand{\Pr}[1]{\mathify{\mbox{Pr}\left[#1\right]}}
\newcommand{\Exp}[1]{\mathify{\mbox{Exp}\left[#1\right]}}
\newcommand{\set}[1]{\mathify{\left\{ #1 \right\}}}
\newcommand{\cset}[2]{\set{#1\\{}\mid\\{}#2}}  % a conditional notation to define sets
\newcommand{\lset}[2]{\set{#1,\ldots,#2}} % set {from,...,to}
\newcommand{\suchthat}{\vert}
\newcommand{\st}{\suchthat}
\renewcommand{\vec}[1]{{\bm{#1}}}
